﻿using CoachingOrganizer.Logic.Common;
using CoachingOrganizer.Logic.Models.Tools.MoneyCalculation;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CoachingOrganizer.Logic.Logic.Tools.MoneyCalculation
{
    internal abstract class PeriodGroupReportLogicBase
    {
        private readonly PeriodGroupReportModelBase _baseModel;
        private readonly LogicExtender _logicExtender;
        protected readonly PeriodReportLogic _upperLogic;

        public PeriodGroupReportModelBase BaseModel
        {
            get { return _baseModel; }
        } 

        public PeriodGroupReportLogicBase(PeriodGroupReportModelBase model, LogicExtender logicExtender, PeriodReportLogic upperLogic)
        {
            _baseModel = model;
            _logicExtender = logicExtender;
            _upperLogic = upperLogic;
            model.GetAmountDelegate = GetAmount;
        }

        public abstract decimal GetAmount();
    }
}
